<?php
/**
 * SpecialPage 
 */
class UserFriends extends SpecialPage {
        
    /**
     * constructeur 
     */
    function __construct() {
        // block est un droit necessaire pour utiliser cette page
        parent::__construct('UserFriends', 'block');
        
        // verifier si l'utilisateur courant a le droit block
        // $this->checkPermissions();
    }
    
    /**
     * @param type $test 
     */
    public function execute($test){
        
        // ---------- recuperation des paramettres postés($_POST) ou envoyés via $_GET --------------
        // recuperation de l'objet requete
        $request = $this->getRequest();
        
        /*
         *  recupere les données apartir $_GET, $_POST et $_COOKIE, dans l'ordre
         * @premier paramettre, le nom de la variable exemple ?nom=valeur
         * @deuxieme paramettre la valeur de la variable, 
         */
        $nom = $request->getText('nom', 'aucun nom');
        
        $name_user = $this->getContext()->getUser();
        $name = $name_user->getName();
        $id_user_connecte = User::idFromName($name);
        
        
        // boolean $request->wasPosted() permet de savoir si la requete est de type $_POST
        
        //----------- Interogation de la base de donnees -----------
        // recuperation d'une instance de type Database, la connecion se fait sur DB_SLAVE
        // il est possible d'utilisé la DB_MASTER, dans notre cas master est slave equivalent
        $mDb = wfGetDB( DB_SLAVE );
        
        // liste des tables a interroger
        $tables = array('user');
        
        // liste des champs a recuperer
        $fields = array('user_name','user_id');
        
        // pas de jointures, pas de where, pas de order no de group by
        $conds = array('user_name<>"'.$name.'"');
        
        $options = $join_conds = array(); 
        
        // info sur la methode de la class utilisée
        $fname = __METHOD__ . ' (UserFriends)';
        
        // execution de la requete "SELECT user_name, user_id FROM user"
        $res = $mDb->select( $tables, $fields, $conds, $fname, $options, $join_conds );
        
        /// pour verifier si ami ou non
        $tables2 = array('user_friends');
        
        // liste des champs a recuperer
        $fields2 = array('user_id','user_id_friends');
        
        // pas de jointures, pas de where, pas de order no de group by
        $conds2 = array('user_id="'.$id_user_connecte.'"');
        
        $options2 = $join_conds2 = array(); 
        
        // info sur la methode de la class utilisée
        $fname2 = __METHOD__ . ' (UserFriends)';
        
        // execution de la requete "SELECT user_name, user_id FROM user"
        $res2 = $mDb->select( $tables2, $fields2, $conds2, $fname2, $options2, $join_conds2 );
        // faire where id != user connecte
        
        //----------- initialisation de la vue -----------      
        $tpl = new TemplateUserFriends($this->getUser(), $res, $res2, $id_user_connecte);
        
        // envoie du nom vers la vue
        $tpl->setNom($nom);
        
        /***** Ajout *****/
        
        //$res = $mDb->insert($table, $a, $fname, $options);
        
        
        // recuperation de l'output
        $out = $this->getOutput();
        
        // ajout de la template dans le output
        $out->addTemplate($tpl);
    }
    
    // faire classe api pour la base de données
}
?>
